JavaScript Random

    In the previous tutorial, we learned about JavaScript Math objects, there we also learned about random() method that can generate random numbers. In this tutorial, we will discuss the Math random method in detail because it is one of the most important and widely used JS Math methods.

    Math.random()

    The Math.random() method can generate a random number between 0 and 1, where 0 is inclusive and 1 is exclusive. This means the random() method always returns a value equal to and greater than 0 and less than 1.

    Example

    <script>
        random_number = Math.random();  //random number between 0 to 0.999999 
        console.log(random_number);   //0.717273747683947
    </script>

    Generate Random Integers in JavaScript

    The Math.random() number always returns a decimal point number between 0 to 1(exclusive). But we can multiply the returned random number with an integer value to increase the range of the random number. And then roundup the number using either Math.floor() , Math.ceil() , Math.round() or Math.trunc() methods to get an integer value.

    Example

    <script>
    
        //random number between 0 to 9
        random_number1 = Math.floor(Math.random()*10);  // round down the number 
    
        //random number between 0 to 9
        random_number2 = Math.ceil(Math.random()*10);  // round down up number 
    
        //random number between 0 to 9
        random_number3 = Math.trunc(Math.random()*10);  // remove the decimal points
    
        //random number between 0 to 9
        random_number4 = Math.round(Math.random()*10);  // round number 
    
        console.log(random_number1);
        console.log(random_number2);
        console.log(random_number3);
        console.log(random_number4);
    
    </script>

    Output(console)

    8
    8
    2
    8

    Create a Random function in JavaScript

    By far we have learned how to generate random numbers in JavaScript, and how to increase its range and generate random integer numbers. But by doing so we are generating only random numbers between o to n-1 . Let's say we want to create an OTP application where we want to generate a random 4 digit number, how can we do that. To achieve this objective we need to define a function or logic that can generate a random number between 1000 to 9999, that covers all the 4 digits random numbers.

    Example

    <script>
        function generate_random_num(min_val, max_val)
        {
            return Math.round(Math.random()*(max_val-min_val)) +min_val
        }
    
        //four digit random number 
        rand_4 = generate_random_num(1000, 10000);
    
        //five digit random number 10000, 99999
        rand_5 = generate_random_num(10000, 100000);
    
        console.log("The four digit random number is: "+rand_4);
        console.log("The five digit random number is: "+rand_5);
    </script>

    Output

    The four digit random number is: 4758
    The five digit random number is: 73767

    Behind the code

    In the above example the Math.round(Math.random()*(max_val-min_val)) +min_val statement will make sure that the random number always generated between min_vlaue (inclusive) and max_value (exclusive) . If you want to make both min_val and max_val inclusive, there you can use this return statement Math.round(Math.random()*(max_val-min_val+1)) +min_val

    Summary

    • The Math.random() method returns a random number between 0(included) to 1(excluded).
    • To increase the range of generated random numbers we can multiply the generated number with a max value.
    • To generate a Integer random number we can round the generated random number using round(), floor(), ceil() or trunc() method.

    People are also reading: